A web server may transmit web content to clients using a variety of methods. Typically, multiple clients will request the same web content from a web server. In its simplest form, the web server may then transmit the web content to the clients over a hypertext transfer protocol (HTTP).
More sophisticated web applications may require alternate methods of transferring web content to the clients. For example, a web server may provide access to a robust web application, where content on the page is updated asynchronously. In this case, an Asynchronous Javascript and XML (AJAX) framework may be used to transmit web content to the clients. More specifically, the AJAX framework allows clients to request modified web content using Javascript™. Javascript™ is a trademark of Sun Microsystems™, Inc. located in Santa Clara, Calif. Upon receipt of the modified web content only the portion of the web content that was modified (when compared with the web content currently on the client) is reloaded.
AJAX allows clients to update web content asynchronously; however, AJAX does not allow for event driven content to be pushed from the web server to the clients. To address this limitation, web applications may implement client polling to continuously request modifications of the web content from the web server. However, polling may be highly inefficient because a client will often poll the web server when no modifications have been made. Alternatively, web servers may use the Comet framework to build event driven web applications. Typically, the Comet framework requires that a connection be asynchronously established between the client and the server. The connection must then remain unbroken, allowing the server to push events to the client at will.
For example, a web server may provide a chat room implementing AJAX and the Comet framework to a group of clients. In this example, the Comet framework requires that each client maintain an unbroken connection to the web server. When a client sends a message to the chat room, the web server would be able to push the message to the other clients through the unbroken connections. In the case where a large number of clients are subscribed to the chat room, the web server may have difficulty simultaneously pushing the message to each of the other clients. Typically, this issue may be addressed by increasing the memory and processing power of the web server.